package com.gimi.cloud.jimi.manage.service.prod;

import com.gimi.cloud.jimi.common.utils.Page;
import com.gimi.cloud.jimi.dto.prod.ProdCatModelDTO;
import com.gimi.cloud.jimi.dto.prod.ProdCategoryDTO;

import java.util.List;
import java.util.Map;

/**
 * Created by lixj on 2017/12/18.
 */
public interface CategoryService {

//    /**
//     * 商品品类添加
//     * @param prodCategoryDTO
//     * @return
//     */
//    ResponseCodeEnum categoryAdd(ProdCategoryDTO prodCategoryDTO);
//
//    /**
//     * 商品品类新增
//     * @param prodCategoryDTO
//     * @return
//     */
//    ResponseCodeEnum categoryUpdate(ProdCategoryDTO prodCategoryDTO);

    /**
     * 把 品类和品类模板以及品牌的添加和修改整合在一起
     */
    ProdCategoryDTO saveOrUpdate(ProdCategoryDTO ecProdCategoryDTO);

    /**
     * 商品品类删除
     * @param prodCategoryDTO
     * @return
     */
    Boolean categoryDelete(ProdCategoryDTO prodCategoryDTO);
    /**
     * 根据品类id获取商品品类列表
     * @return 菜单列表
     * @param prodCategoryDTO
     */
    List<ProdCategoryDTO> getCategoryListById(ProdCategoryDTO prodCategoryDTO);
    /**
     * 获取商品三级品类列表
     * @return 菜单列表
     */
    List<ProdCategoryDTO> getCategoryList();
    /**
     * 获取商品品类列表(分页)
     * @return 菜单列表
     * @param prodCategoryDTO
     */
    Page<ProdCategoryDTO> getCategoryPageList(ProdCategoryDTO prodCategoryDTO);
//    /**
//     * 转跳到编辑界面
//     * @param prodCategoryDTO
//     * @return
//     */
//    ProdCategoryDTO gotoEditProdCategory(ProdCategoryDTO prodCategoryDTO);

    ProdCategoryDTO loadPordCategoryAndInitModelInfo(ProdCategoryDTO dto, String prodCatId);

    /**
     * 通过三级品类id查询模板及其属性
     * @param dto
     * @return
     */
     List<ProdCatModelDTO> getThreeProdCatModel(ProdCatModelDTO dto);

    ProdCategoryDTO load(ProdCategoryDTO dto, Object id);

    /**
     * 根据参数查询出所有的对应商品品类列表
     * @return 菜单列表
     * @param i
     */
    List<ProdCategoryDTO> searchCategoryListByGrade(int i);

    /**
     * 查出库里的id最大值
     * @return 菜单列表
     * @param parentCatId
     */
    String findMaxCatIdByGrade(String parentCatId,int subStart);

    /**
     * 获得树形结构的商品品类列表
     * @return 菜单列表
     */
    List<Map<String,Object>> getCategoryListTree(ProdCategoryDTO prodCategoryDTO);

    /**
     * 根据父品类获取子品类列表
     */
    List<ProdCategoryDTO> getCategoryListByParent(ProdCategoryDTO dto);
}
